package com.app.biz.mapper;

import java.util.List;
import com.app.biz.domain.formal.BizFocusSchedulingProductProductionFormal;
import com.app.biz.domain.request.BizFocusSchedulingProductProductionRequest;
import com.app.biz.domain.BizFocusSchedulingProductProduction;
import org.apache.ibatis.annotations.Param;

/**
 * 重点调度产品产量正式SMapper接口
 *
 * @author SangGuangCan
 * @date 2024-01-02
 */
public interface BizFocusSchedulingProductProductionFormalMapper
{
    /**
     * 查询重点调度产品产量正式S
     *
     * @param baseId 重点调度产品产量正式S主键
     * @return 重点调度产品产量正式S
     */
    public BizFocusSchedulingProductProductionFormal selectBizFocusSchedulingProductProductionFormalByBaseId(String baseId);

    /**
     * 查询重点调度产品产量正式S列表
     *
     * @param bizFocusSchedulingProductProductionFormal 重点调度产品产量正式S
     * @return 重点调度产品产量正式S集合
     */
    public List<BizFocusSchedulingProductProductionFormal> selectBizFocusSchedulingProductProductionFormalList(BizFocusSchedulingProductProductionFormal bizFocusSchedulingProductProductionFormal);

    /**
     * 新增重点调度产品产量正式S
     *
     * @param bizFocusSchedulingProductProductionFormal 重点调度产品产量正式S
     * @return 结果
     */
    public int insertBizFocusSchedulingProductProductionFormal(BizFocusSchedulingProductProductionFormal bizFocusSchedulingProductProductionFormal);

    /**
     * 修改重点调度产品产量正式S
     *
     * @param bizFocusSchedulingProductProductionFormal 重点调度产品产量正式S
     * @return 结果
     */
    public int updateBizFocusSchedulingProductProductionFormal(BizFocusSchedulingProductProductionFormal bizFocusSchedulingProductProductionFormal);

    /**
     * 删除重点调度产品产量正式S
     *
     * @param baseId 重点调度产品产量正式S主键
     * @return 结果
     */
    public int deleteBizFocusSchedulingProductProductionFormalByBaseId(String baseId);

    /**
     * 批量删除重点调度产品产量正式S
     *
     * @param baseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizFocusSchedulingProductProductionFormalByBaseIds(String[] baseIds);

    /**
     * <p>
     * 查询数据库中数据的日期(year_month字段)并进行去重复操作<br/>
     * 主要用于的是APP端左上角的日期过滤
     * </p>
     *
     * @return 日期的集合
     */
    List<String> getUniqueDatesFromDatabase();

    /**
     * 获取APP表格中的数据
     * @param request
     * @return
     */
    List<BizFocusSchedulingProductProductionFormal> getAppTableData(@Param("p") BizFocusSchedulingProductProductionRequest request);

    /**
     * <p>
     *     批量插入
     * </p>
     * @param list
     */
    void batchInsertBizIndustrialSectorMetricsFormal(@Param("list") List<BizFocusSchedulingProductProduction> list);

    List<BizFocusSchedulingProductProductionFormal> selectBizFocusSchedulingProductProductionByParentId(@Param("pId") String pId);

    List<BizFocusSchedulingProductProductionFormal> selectSubNodeData(@Param("list") List<String> oneLevelIdArgs);

}
